﻿Public Class frmGestionPacientes
    Private strEstado As String

    Private Sub frmGestionPacientes_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Me.blanquear()
        Me.cmbSexo.SelectedIndex = 0
        Me.fraDatosPaciente.Enabled = False
        Me.tstMenu.Items.Item(0).Enabled = True ' Nuevo
        Me.tstMenu.Items.Item(1).Enabled = False ' Modificar
        Me.tstMenu.Items.Item(2).Enabled = False ' Cancelar
        Me.tstMenu.Items.Item(3).Enabled = False ' Guardar 
        Me.tstMenu.Items.Item(5).Enabled = True ' Buscar
        'Dim objGestorPacientes As Laboratorio_Negocio.GestorPacientes = New Laboratorio_Negocio.GestorPacientes
        'Dim objPaciente As Laboratorio_Negocio.CapaDeNegocio.Paciente = New Laboratorio_Negocio.CapaDeNegocio.Paciente
        'objPaciente = objGestorPacientes.getPaciente
        'Me.TextBox1.Text = objPaciente.nombre
    End Sub

    Private Sub txtIdTipoDoc_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtIdTipoDoc.LostFocus
        If txtIdTipoDoc.Text <> "" Then
            Me.setTipoDoc(txtIdTipoDoc.Text)
        Else
            txtDescTipoDoc.Text = ""
        End If
    End Sub

    Private Sub btnBucarTipoDoc_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBucarTipoDoc.Click
        llamarBusquedaTipoDoc()
    End Sub

    Private Sub llamarBusquedaTipoDoc()
        Dim objBuscarDatos As Laboratorio_Presentacion.frmBuscarDatos = New Laboratorio_Presentacion.frmBuscarDatos
        Dim objTipoDoc As Laboratorio_Negocio.CapaDeNegocio.TipoDocumento = New Laboratorio_Negocio.CapaDeNegocio.TipoDocumento

        objBuscarDatos.tabla = "LABT_TIPO_DOCUMENTO"
        objBuscarDatos.tipo = objTipoDoc.GetType
        objBuscarDatos.traerDatos()
        objBuscarDatos.Show(Me)
    End Sub

    Private Sub NewToolStripButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNuevo.Click
        Me.blanquear()
        Me.fraDatosPaciente.Enabled = True

        Me.tstMenu.Items.Item(0).Enabled = False ' Nuevo
        Me.tstMenu.Items.Item(1).Enabled = False ' Modificar
        Me.tstMenu.Items.Item(2).Enabled = True ' Cancelar
        Me.tstMenu.Items.Item(3).Enabled = True ' Guardar 
        Me.tstMenu.Items.Item(5).Enabled = False ' Buscar

        Me.strEstado = "Nuevo"
    End Sub

    Private Sub btnGuardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGuardar.Click

        If Me.txtApellido.Text = "" Then
            MsgBox("Debe ingresar el apellido del Paciente", MsgBoxStyle.Exclamation, "Faltan Datos")
            Exit Sub
        End If
        If Me.txtFechaNacimiento.Text = "" Then
            MsgBox("Debe ingresar la feha de nacimiento del Paciente", MsgBoxStyle.Exclamation, "Faltan Datos")
            Exit Sub
        End If
        If Me.txtIdTipoDoc.Text = "" Then
            MsgBox("Debe ingresar el tipo de documento del Paciente", MsgBoxStyle.Exclamation, "Faltan Datos")
            Exit Sub
        End If
        If Me.txtNombre.Text = "" Then
            MsgBox("Debe ingresar el nombre del Paciente", MsgBoxStyle.Exclamation, "Faltan Datos")
            Exit Sub
        End If
        If Me.txtNumeroDoc.Text = "" Then
            MsgBox("Debe ingresar el numero de documento del Paciente", MsgBoxStyle.Exclamation, "Faltan Datos")
            Exit Sub
        End If
        If Me.txtRaza.Text = "" Then
            MsgBox("Debe ingresar la raza del Paciente", MsgBoxStyle.Exclamation, "Faltan Datos")
            Exit Sub
        End If

        ' validacion de tipo de documento
        Dim objTipoDoc As Laboratorio_Negocio.CapaDeNegocio.TipoDocumento = New Laboratorio_Negocio.CapaDeNegocio.TipoDocumento
        objTipoDoc.idTipoDoc = Trim(Me.txtIdTipoDoc.Text)
        Dim objgestorPaciente As Laboratorio_Negocio.GestorPacientes = New Laboratorio_Negocio.GestorPacientes
        If objgestorPaciente.validarTipoDoc(objTipoDoc) = False Then
            MsgBox("El tipo de documento ingresado no es correcto", MsgBoxStyle.Exclamation, "Datos Incorrectos")
            Exit Sub
        End If

        'Creo el objeto Paciente y asigno los valores
        Dim objPaciente As Laboratorio_Negocio.CapaDeNegocio.Paciente = New Laboratorio_Negocio.CapaDeNegocio.Paciente
        With objPaciente
            .nombre = Trim(Me.txtNombre.Text)
            .apellido = Trim(Me.txtApellido.Text)
            .tipoDocumento = objTipoDoc
            .numeroDoc = CType(Trim(Me.txtNumeroDoc.Text), Integer)
            Try
                .fechaNacimiento = CType(Trim(Me.txtFechaNacimiento.Text), Date)
            Catch ex As Exception
                MsgBox("La fecha de nacimiento no es correcta", MsgBoxStyle.Exclamation, "Datos Incorrectos")
                Exit Sub
            End Try
            If cmbSexo.SelectedIndex = 0 Then
                .sexo = "M"
            Else
                .sexo = "F"
            End If
            .raza = Trim(Me.txtRaza.Text)
            .calle = Trim(Me.txtCalle.Text)
            If txtNumeroCalle.Text = "" Then
                .numero = 0
            Else
                .numero = CType(Trim(Me.txtNumeroCalle.Text), Integer)
            End If

            .telefono = Trim(Me.txtTelefono.Text)
            .mail = Trim(Me.txtMail.Text)
        End With
        Dim strId As String

        If Me.strEstado = "Modificar" Then
            objPaciente.id = Trim(Me.txtIdTipoDoc.Text)
        End If

        strId = objgestorPaciente.setPaciente(objPaciente)

        If strId = "" Then
            MsgBox("No se puede grabar el Paciente", MsgBoxStyle.Critical, "Error")
        Else
            MsgBox("El Paciente se grabó con éxito", MsgBoxStyle.Information, "Confirmación")
        End If
        Me.mostrarPaciente(strId)

    End Sub

    Public Sub mostrarPaciente(ByVal strId As String)
        Dim objGestorPaciente As Laboratorio_Negocio.GestorPacientes = New Laboratorio_Negocio.GestorPacientes
        Dim objPaciente As Laboratorio_Negocio.CapaDeNegocio.Paciente
        Dim objTipoDoc As Laboratorio_Negocio.CapaDeNegocio.TipoDocumento
        objPaciente = objGestorPaciente.getPaciente(strId)
        With objPaciente
            Me.txtId.Text = .id
            Me.txtNombre.Text = .nombre
            Me.txtApellido.Text = .apellido
            Me.txtNumeroDoc.Text = .numeroDoc.ToString
            Me.txtFechaNacimiento.Text = .fechaNacimiento.ToString
            Me.txtEdad.Text = .edad.ToString
            If .sexo = "M" Then
                cmbSexo.SelectedIndex = 0
            Else
                cmbSexo.SelectedIndex = 0
            End If
            'Me.txtRaza.Text = .raza.ToString
            Me.txtCalle.Text = .calle.ToString
            Me.txtNumeroCalle.Text = .numero.ToString
            Me.txtTelefono.Text = .telefono.ToString
            Me.txtMail.Text = .mail.ToString
            Me.txtIniciales.Text = .iniciales.ToString
        End With
        objTipoDoc = objGestorPaciente.getTipoDoc(objPaciente.tipoDocumento.idTipoDoc.ToString)
        With objTipoDoc
            Me.txtIdTipoDoc.Text = .idTipoDoc.ToString
            Me.txtDescTipoDoc.Text = .descripcion.ToString
        End With

        Me.fraDatosPaciente.Enabled = False

        Me.tstMenu.Items.Item(0).Enabled = True ' Nuevo
        Me.tstMenu.Items.Item(1).Enabled = True ' Modificar
        Me.tstMenu.Items.Item(2).Enabled = False ' Cancelar
        Me.tstMenu.Items.Item(3).Enabled = False ' Guardar 
        Me.tstMenu.Items.Item(5).Enabled = True ' Buscar

        Me.strEstado = "Guardar"
    End Sub

    Private Sub btnCancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancelar.Click
        Me.blanquear()
        Me.fraDatosPaciente.Enabled = False
        Me.tstMenu.Items.Item(0).Enabled = True ' Nuevo
        Me.tstMenu.Items.Item(1).Enabled = False ' Modificar
        Me.tstMenu.Items.Item(2).Enabled = False ' Cancelar
        Me.tstMenu.Items.Item(3).Enabled = False ' Guardar 
        Me.tstMenu.Items.Item(5).Enabled = True ' Buscar

        Me.strEstado = "Cancelar"
    End Sub

    Private Sub blanquear()
        Me.txtApellido.Text = ""
        Me.txtCalle.Text = ""
        Me.txtDescTipoDoc.Text = ""
        Me.txtFechaNacimiento.Text = ""
        Me.txtIdTipoDoc.Text = ""
        Me.txtMail.Text = ""
        Me.txtNombre.Text = ""
        Me.txtNumeroDoc.Text = ""
        Me.txtNumeroCalle.Text = ""
        Me.txtRaza.Text = ""
        Me.txtTelefono.Text = ""
        Me.txtId.Text = ""
        Me.txtIniciales.Text = ""
        Me.txtNombre.Focus()
    End Sub

    Private Sub btnModificar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnModificar.Click
        Me.fraDatosPaciente.Enabled = True

        Me.tstMenu.Items.Item(0).Enabled = False ' Nuevo
        Me.tstMenu.Items.Item(1).Enabled = False ' Modificar
        Me.tstMenu.Items.Item(2).Enabled = True ' Cancelar
        Me.tstMenu.Items.Item(3).Enabled = True ' Guardar 
        Me.tstMenu.Items.Item(5).Enabled = False ' Buscar

        Me.strEstado = "Modificar"
    End Sub

    Public Sub setTipoDoc(ByVal strId As String)
        Dim objGestorPacientes As Laboratorio_Negocio.GestorPacientes = New Laboratorio_Negocio.GestorPacientes
        Dim objTipoDoc As Laboratorio_Negocio.CapaDeNegocio.TipoDocumento
        objTipoDoc = objGestorPacientes.getTipoDoc(strId)
        If objTipoDoc Is Nothing Then
            llamarBusquedaTipoDoc()
        Else
            txtIdTipoDoc.Text = objTipoDoc.idTipoDoc
            txtDescTipoDoc.Text = objTipoDoc.descripcion
        End If
    End Sub


End Class